টু-ডু লিস্ট অ্যাপ হলো একটি জনপ্রিয় প্র্যাকটিস প্রোজেক্ট, যা ব্যবহারকারীদের বিভিন্ন টাস্ক বা কাজ সংরক্ষণ, আপডেট, মুছা এবং প্রদর্শনের সুযোগ দেয়। এই প্রজেক্টের মাধ্যমে প্রোগ্রামিংয়ের বেসিক ধারণা যেমন ক্লাস, অবজেক্ট, এবং মেনু ড্রাইভেন প্রোগ্রামিং ইত্যাদি শেখা যায়।
নিচে একটি বেসিক টু-ডু লিস্ট অ্যাপ তৈরি করার কোড দেওয়া হলো, যেখানে একটি Task
ক্লাসের মাধ্যমে টাস্কের বৈশিষ্ট্য সংজ্ঞায়িত করা হয়েছে এবং টাস্ক ম্যানেজমেন্টের জন্য বিভিন্ন মেথড তৈরি করা হয়েছে।
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Task {
private:
int id;
string title;
bool completed;
public:
Task(int id, string title) : id(id), title(title), completed(false) {}
int getId() const { return id; }
string getTitle() const { return title; }
bool isCompleted() const { return completed; }
void markComplete() { completed = true; }
void updateTitle(const string& newTitle) { title = newTitle; }
void display() const {
cout << "ID: " << id << "\nTitle: " << title
<< "\nStatus: " << (completed ? "Completed" : "Pending") << endl;
}
};
class TodoList {
private:
vector<Task> tasks;
int nextId = 1;
public:
void addTask(const string& title) {
tasks.emplace_back(nextId++, title);
cout << "Task added successfully!" << endl;
}
void displayTasks() const {
if (tasks.empty()) {
cout << "No tasks available." << endl;
return;
}
for (const auto& task : tasks) {
task.display();
cout << "---------------------" << endl;
}
}
void markTaskComplete(int id) {
for (auto& task : tasks) {
if (task.getId() == id) {
task.markComplete();
cout << "Task marked as completed." << endl;
return;
}
}
cout << "Task not found!" << endl;
}
void updateTask(int id, const string& newTitle) {
for (auto& task : tasks) {
if (task.getId() == id) {
task.updateTitle(newTitle);
cout << "Task updated successfully!" << endl;
return;
}
}
cout << "Task not found!" << endl;
}
void deleteTask(int id) {
for (auto it = tasks.begin(); it != tasks.end(); ++it) {
if (it->getId() == id) {
tasks.erase(it);
cout << "Task deleted successfully!" << endl;
return;
}
}
cout << "Task not found!" << endl;
}
};
int main() {
TodoList todoList;
int choice, id;
string title;
do {
cout << "\nTo-Do List\n";
cout << "1. Add Task\n2. Display All Tasks\n3. Mark Task as Complete\n4. Update Task\n5. Delete Task\n6. Exit\n";
cout << "Enter your choice: ";
cin >> choice;
switch (choice) {
case 1:
cout << "Enter task title: ";
cin.ignore();
getline(cin, title);
todoList.addTask(title);
break;
case 2:
todoList.displayTasks();
break;
case 3:
cout << "Enter task ID to mark as complete: ";
cin >> id;
todoList.markTaskComplete(id);
break;
case 4:
cout << "Enter task ID to update: ";
cin >> id;
cout << "Enter new title: ";
cin.ignore();
getline(cin, title);
todoList.updateTask(id, title);
break;
case 5:
cout << "Enter task ID to delete: ";
cin >> id;
todoList.deleteTask(id);
break;
case 6:
cout << "Exiting..." << endl;
break;
default:
cout << "Invalid choice. Please try again." << endl;
}
} while (choice != 6);
return 0;
}
Task ক্লাস:
id
, title
, এবং completed
প্রোপার্টি রয়েছে।markComplete()
মেথডে টাস্ককে সম্পন্ন হিসেবে চিহ্নিত করা যায়।updateTitle()
মেথডে টাস্কের শিরোনাম আপডেট করা যায়।display()
মেথডে টাস্কের তথ্য প্রদর্শন করা হয়।TodoList ক্লাস:
tasks
নামে একটি ভেক্টর আছে, যেখানে সব টাস্ক অবজেক্ট রাখা হয়।addTask()
নতুন টাস্ক যোগ করে।displayTasks()
সব টাস্ক দেখায়।markTaskComplete()
নির্দিষ্ট আইডি অনুযায়ী টাস্ককে সম্পন্ন হিসেবে চিহ্নিত করে।updateTask()
নির্দিষ্ট আইডি অনুযায়ী টাস্কের শিরোনাম আপডেট করে।deleteTask()
নির্দিষ্ট আইডি অনুযায়ী টাস্ক মুছে ফেলে।main ফাংশন:
এই বেসিক টু-ডু লিস্ট অ্যাপটি প্রোগ্রামিংয়ের বেসিক ধারণা যেমন ক্লাস, অবজেক্ট, এবং ভেক্টর ব্যবহারের চমৎকার অনুশীলন প্রদান করে।
common.read_more